import { Key } from 'react'
import { request } from "@/utils/http"

import type {
    getHosSetListParamsType,
    getHosSetListReturnType,
    addHospitalParamType,
    getHosSetListItemsType,
    updateHospitalParamType
} from "./model/hospitalSetTypes"

//医院设置中 获取分页列表
export const getHosSetListRequest = ({ page, limit, hosname, hoscode }: getHosSetListParamsType) => {
    return request.get<any, getHosSetListReturnType>(`/admin/hosp/hospitalSet/${page}/${limit}`, {
        params: {
            hosname,
            hoscode
        }
    })
}


//医院设置中 新增医院请求
export const addHospitalRequest = (data: addHospitalParamType) => {
    return request.post<any, null>("/admin/hosp/hospitalSet/save", data)   //post请求发送成功就行，不需要返回值，且由于成功后得到的data（请求的返回值）是null,所以类型限制为null。
}


//医院设置中 根据id获取某个详细的医院设置
export const getHosSetFromIdRequest = (id: string) => {
    return request.get<any, getHosSetListItemsType>(`/admin/hosp/hospitalSet/get/${id}`)
}

//医院设置中 设置对获取到的数据进行修改后，再点击按钮提交修改的请求接口。 要传的参数就是收集好的要更新的表单的数据，以及此条数据对应的id（参数类型是body类型）。
// 因此行参data的类型限制不只是addHospitalParamType了，还应该带着id的类型限制。可以对addHospitalParamType用继承。在继承的同时添加id类型，得到updateHospitalParamType。
export const updateHosSetFromIdRequest = (data: updateHospitalParamType) => {
    return request.put<any, null>("/admin/hosp/hospitalSet/update", data)
}

// 医院设置中根据id删除某条数据请求接口。
export const deleteHosSetFromIdRequest = (id: number) => {
    return request.delete<any, null>(`/admin/hosp/hospitalSet/remove/${id}`)
}

//医院设置中 批量删除数据
export const batchDeleteHosRequest = (ids: Key[]) => {
    return request.delete<any, null>("/admin/hosp/hospitalSet/batchRemove", {   //该接口接收的参数是body类型，所以放在配置对象中的data属性中传递。
        data: ids
    })
}